Apparatuses and methods for distributing row hammer refresh events across a memory device

ABSTRACT

Apparatuses and methods for distributing row hammer refresh events across a memory device is disclosed. In one embodiment, the present disclosure is directed to an apparatus that includes a first memory configured to receive a sequential series of refresh commands and to replace a first of the sequential refresh commands with a row hammer refresh operation once during a refresh steal cycle, a second memory configured to receive the sequential series of refresh commands at to replace a second of the sequential refresh command with a row hammer refresh operation once during a refresh steal cycle, wherein the first of the sequential refresh commands and the second of the sequential refresh commands are different commands.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application is a divisional of pending U.S. patent application Ser. No. 15/419,590 filed Jan. 30, 2017, The aforementioned application is incorporated herein by reference, in its entirety, for any purpose.

BACKGROUND

A semiconductor memory device typically stores information via charges accumulated in cell capacitors. One such device that stores information in this manner is a Dynamic Random Access Memory (DRAM). Charges that accumulate in cell capacitors of a semiconductor memory device may dissipate over time through leakage. This charge leakage may lead to information loss unless refresh operations are periodically carried out. In a semiconductor memory device, such as a DRAM or the like, refresh operations are typically controlled through refresh commands. For example, a control device that controls the DRAM may periodically issue refresh commands that indicate refresh operations. The control device may issue the refresh commands at a frequency such that all word lines are refreshed at least once during the period of one refresh cycle. For example, with a 64 millisecond refresh cycle, a control device may issue a plurality of refresh commands that ensure every word line is refreshed at least once every 64 milliseconds.

The information retention characteristics of a memory cell may be reduced in some cases as a consequence of the access history of the memory cell. If the information retention time of the memory cell is reduced to less than one refresh cycle, part of the information stored in the memory cell may be lost even when refresh commands are issued at a frequency that refreshes all word lines at least one time per refresh cycle. Various factors may give rise to this problem in DRAMs. For example, cell leakage may occur due to crystal defects, foreign matters, etc., which may be present in memory cells by some degree. Cell leakage may also emerge due to interference from adjacent word lines or noise caused along with memory access. In some cases, the impact of access history on information retention may be mitigated by providing a disturb counter, which counts and/or stores the number of accesses that occur for each memory section. If an access count becomes larger than a predetermined threshold value, the refresh frequency of the section may be increased.

With miniaturization of DRAMs advancing to become a 2x-nm process in the current generation, the “row hammer” phenomenon has emerged. Generally, the “row hammer” phenomenon occurs when adjacent cell charges are lost by minor carriers that are generated every time a word line is activated/deactivated. Errors may occur as a result. The row hammer phenomenon is an additional mechanism for information retention loss and thus presents additional difficulties for the reliability of DRAMs. A row hammer threshold value generally refers to the number of memory access for a given word line that result in errors occurring in adjacent word lines. As process dimensions shrink, row hammer threshold values become smaller. In the 20-nm process generation, row hammer threshold values become 100,000 times or less. Because of this increasing problem, it is becoming difficult to maintain correct operations without dedicated circuit solutions in DRAM or some other solution on the memory side.

Some solutions to the row hammer problem expand the above-mentioned disturb counter to monitor each row address so to determine a row address (hammer address) at which the number accesses has reached the row hammer threshold value. Once the disturb counter registers a threshold number of accesses, adjacent word line(s) are subjected to additional refresh operations. However, because the memory space of a memory system is much bigger than a single DRAM, an extremely large scale circuit has to be mounted in order to analyze the history of access to such memory cells, and the cost thereof is not realistic. This is even more so in a large-scale system such as a server.

Other solutions focus on the fact that the appearance frequency of hammer addresses, as determined the row hammer threshold, inevitably increases as the upper limit of the number of times of row access (the number of Active commands) which can be executed in a refresh cycle decreases. Here, row addresses may be captured at random timing and at an appropriate frequency according to a probabilistic memory control. When random capture of row addresses is used, only additional refresh with respect to the adjacent word line thereof is carried out. Therefore, the circuit scale can be extremely reduced, and, according to the probability of hitting the hammer addresses, practically high reliability can be obtained.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing an overall configuration of a memory in accordance with the present disclosure.

FIG. 2 is a schematic illustration of an example refresh address control circuit in accordance with the present disclosure.

FIG. 3 is a schematic illustration of a “CAS before RAS” (CBR) circuit in accordance with the present disclosure

FIG. 4 is a schematic illustration of row hammer refresh (RHR) counter in accordance with the present disclosure.

FIG. 5A is a schematic illustration of a memory device in accordance with the present disclosure that uses a token bus configuration to control scheduling of row hammer events across the various memories of the memory device.

FIG. 5B is a schematic illustration of another memory device in accordance with the present disclosure that uses a token bus configuration to control scheduling of row hammer events across the various memories of the memory device.

FIG. 6 is a schematic illustration of an example N-bit shift register in accordance with the present disclosure.

FIG. 7 is a schematic illustration of an example shift register cell in accordance with the present disclosure.

FIG. 8 is a timing diagram that illustrates the timing of various row hammer refresh events across an example memory device in accordance with the present disclosure.

DETAILED DESCRIPTION

The present disclosure is directed to systems and methods for scheduling row hammer events across multiple memories in a memory device. As used herein, a “memory” may operate as part of a larger “memory device” that includes a number of other memories. For example, a memory may be a unit of memory such as a Dynamic Random Access Memory or the like. A memory may include a plurality of memory cells that are organized into word lines that may accessed as a group from outside the memory. A memory device may be Dual In-Line Memory Module or the like which includes a plurality of memories. A memory device may include a controller that issues commands to the various memories. For example, a controller may issue a read command that retrieves data from a word line in a particular memory. A controller may also issue a write command that stores data at a word line in a particular memory. Because memory cells store data via electrical charges that deteriorate over time, a controller may also periodically issue refresh commands that operate to restore electrical charges on individual memory cells in a word line of memory.

Generally, a “row hammer event” occurs when a refresh command is executed to refresh word lines that are adjacent to a hammered word line. A particular word line is “hammered” when it is accessed via memory access operations, such as a read or a write, in a manner that could potentially lead to data errors in adjacent word lines. Typically, a word line is hammered when it accessed more than a predetermined number of times. Embodiments in accordance with the present disclosure may determine that a particular word line is hammered via various mechanisms. In one example, probabilistic methods may be used to track hammer addresses. In other examples, disturb counters or similar mechanisms may be used to track hammer addresses.

A row hammer refresh command may be generally executed via a refresh command steal operation where a refresh command received from a memory device controller is “stolen” by the memory and a row hammer refresh command is executed in place of the “stolen” refresh command. The refresh command called, for by the “stolen” refresh command is typically executed at a later time after the row hammer refresh command is executed. In connection with the refresh steal operation, a memory may execute a timing protocol that allows the memory to “steal” refresh commands with a frequency that is determined such that a sufficient number of refresh commands are still executed to ensure that data in the memory is not lost.

A row hammer refresh command generally refreshes fewer memory cells than a typical memory refresh command. Because a row hammer refresh command refreshes fewer memory cells, a row hammer refresh command consumes less power than a typical memory refresh command. Given this observation, a memory device in accordance with the present disclosure may be programmed such that not all memories associated with a memory device execute a row hammer refresh command at the same time. Through this programming, the power consumption saving that occur on a row hammer refresh command may be distributed across the memories of a memory device. In this way, the peak power consumption of a memory device may be reduced.

FIG. 1 is a block diagram showing an overall configuration of a memory 10 in accordance with the present disclosure. The memory 10 according to the present embodiment is a SDRAM of, for example, a DDR3 (Double Data Rate 3) type integrated on a single semiconductor chip and has a memory cell array 11. The memory cell array 11 is provided with a plurality of word lines WL and a plurality of bit lines BL and has a configuration in which memory cells MC are disposed at the intersection points thereof. Selection of the word lines WL is carried out by a row decoder 12, and selection of bit lines BL is carried out by a column decoder 13. The memory cell array 11, the row decoder 12A, the column decoder 13, and a read/write amplifier 14 are divided into eight banks BANK0 to BANK7 by way of example and not limitation.

The memory 10 may be generally configured to be receive inputs from an external controller. Certain aspects of an example controller are described in greater detail below. The memory include various external terminals that provide for communication with the external controller. For example, the memory 10 may be provided with address terminals 21, command terminals 22, clock terminals 23, data terminals 24, and data mask terminals 25 as externals. The memory 10 may include additional external terminals such as power supply terminals 26 and 27. The address terminals 21 are the terminals to which address signals ADD are input from outside. The address signals ADD are supplied to an address output circuit 32 via an address input circuit 31. The address output circuit 32 supplies a row address XADD to the row decoder 12A and supplies a column address YADD to the column decoder 13. Moreover, the row address XADD is supplied also to a refresh address control circuit 40.

The command terminals 22 are the terminals to which command signals COM are input from outside The command signals COM are supplied to a command decoder 34 via a command input circuit 33. The command decoder 34 is a circuit which generates various internal commands by decoding the command signals COM. Examples of the internal commands include active signets ACT, pre-charge signals Pre, read/write signals R/W, and refresh signals AREF.

The active signal ACT is a pulse signal which is activated when the command signal COM is indicating row access (active command). When the active signal ACT is activated, the row decoder 12 of a specified bank address is activated. As a result, the word line WL specified by the row address XADD is selected and activated. The pre-charge signal Pre is a pulse signal which is activated when the command signal COM is indicating pre-charge. When the pre-charge signal Pre is activated, the row decoder 12A of the specified bank address and the word line WL specified by the row address XADD controlled thereby are deactivated.

The read/write signal RAN is a pulse signal which is activated when the command signal COM is indicating column access (read command or write command). When the read/write signal RAN is activated, the column decoder 13 is activated. As a result, the bit line BL specified by the column address YADD is selected. Therefore, if the active command and the read command are input and if the row address XADD and the column address YADD are input in synchronization with them, read data is read from the memory cell MC specified by the row address XADD and the column address YADD. The read data DQ is output from the data terminal 24 to outside via a sense amplifier SAMP, a transfer gate TG, the read/write amplifier 14, and an input/output circuit 15.

On the other hand, if the active command and the write, command are input, if the row address XADD and the column address YADD are input in synchronization with them, and, then, if write data DQ is input to the data terminal 24, the write data DQ is supplied to the memory cell array 11 via the input/output circuit 15, the read/write amplifier 14, the transfer gate TG, and the sense amplifier SAMP and is written to the memory cell MC specified by the row address XADD and the column address YADD.

The refresh signal AREF is a pulse signal which is activated when the command signal COM is indicating an auto-refresh command. Also, when the command signal COM is indicating a self-refresh entry command, the refresh signal AREF is activated, is activated once immediately after command input, thereafter, is cyclically activated at desired internal timing, and a refresh state is continued. By a self-refresh exit command thereafter, the activation of the refresh signal AREF is stopped and returns to an IDLE state. The refresh signal AREF is supplied to the refresh address control circuit 40. The refresh address control circuit 40 supplies a refreshing row address RXADD to the row decoder 12A, thereby activating the predetermined word line WL contained in the memory cell array 11, thereby refreshing the information of the corresponding memory cell MC. Other than the refresh signal AREF, the active signal ACT, the row address XADD, etc. are supplied to the refresh address control circuit 40. Details of the refresh address control circuit 40 will be described later.

External clock signals CK and /CK are input to the clock terminals 23. The external clock signals CK and the external clock signals /CK are mutually complementary signals, and both of them are supplied to the clock input circuit 35. The clock input circuit 35 generates internal clock signals ICLK based on the external clock signals CK and /CK. The internal clock signals ICLK are supplied to the command decoder 34, an internal clock generator 36, etc. The internal clock generator 36 generates internal clock signals LCLK, which control the operation timing of the input/output circuit 15.

The data mask terminals 25 are the terminals to which data mask signals DM are input. When the data mask signal DM is activated, overwrite of corresponding data is prohibited.

The power supply terminals 26 are the terminals to which power supply potentials VDD and VSS are supplied. The power supply potentials VDD and VSS supplied to the power supply terminals 26 are supplied to a voltage generator 37. The voltage generator 37 generates various internal potentials VPP, VOD, VARY, VPERI, etc. based on the power supply potentials VDD and VSS. The internal potential VPP is the potential mainly used in the row decoder 12A, the internal potentials VOD and VARY are the potentials used in the sense amplifier SAMP in the memory cell array 11, and the internal potential VPERI is the potential used in many other circuit blocks.

The power supply terminals 27 are the terminals to which power supply potentials VDDQ and VSSQ are supplied. The power supply potentials VDDQ and VSSQ supplied to the power supply terminals 27 are supplied to the input/output circuit 15. The power supply potentials VDDQ and VSSQ are the same potentials as the power supply potentials VDD and VSS, respectively, which are supplied to the power supply terminals 26. However, the dedicated power supply potentials VDDQ and VSSQ are used for the input/output circuit 15 so that power supply noise generated by the input/output circuit 15 does not propagate to other circuit blocks.

A memory 10 in accordance with the present disclosure typically receives a sequential series of refresh commands that, when processed by the refresh address control circuit 40 and other components of the memory 10, operate to refresh the memory cell array 11 block by block. For example, a first refresh command may be received that is directed to refreshing word lines WL in a first address block, a second refresh command may be received that is directed to refreshing word lines WL in a second address block, and so on. As used herein, an “address block” refers to a sequential group of memory locations that may be accessed by addressing a particular memory location in the address block such as the first memory location. The series of refresh commands continues in this way until all word lines WL have been refreshed. Once all word lines WL have been refreshed, a new sequential series of refresh commands is initiated, beginning again with the first refresh command.

The externally generated refresh commands do not generally occur one after the other, but rather are interleaved with other commands issued to the memory 10. Here, commands may be issued to a memory 10 in a sequence with slots in the sequence being allocated for a refresh command. The refresh command slots may occur with a frequency that allows one sequential series of refresh commands to be completed within a predetermined refresh cycle time. The refresh cycle time may be determined based on the frequency with which a cell must be refreshed in order to preserve data.

The refresh cycle time may be defined in a way that allows for row hammer refresh events to occur in the memory 10. In row hammer refresh events, certain refresh command slots may be used for a row hammer refresh command instead of for a sequential refresh command. In this way, refresh command slots may be “stolen” periodically for row hammer refresh operations. The rate with which refresh command slots are stolen may vary depending on the implementation. For example, a refresh command slot may be stolen once every 17^(th) refresh command slot, once every 9^(th) refresh command slot, once every 5^(th) refresh command slot, and so on.

The refresh address control circuit 40 is generally configured to provide the refreshing row address RXADD that specifies a particular word line to be refreshed. In one respect, the refresh address control circuit 40 provides the refreshing row address RXADD responsive to sequential refresh commands received from an external controller outside of the memory 10. The refresh address control circuit 40 may additionally be configured to “steal” or otherwise preempt a refresh command received from the external controller and replace that refresh command with a row hammer refresh command. Here, the refresh address control circuit 40 provides the refreshing row address RXADD responsive to a row hammer refresh event. As shown in FIG. 1, the memory 10 may receive a RHR_Token signal that is provided as input to the refresh address control circuit 40. The RHR_Token signal is typically provided by a controller that is external to the memory 10. When the RHR_Token signal is asserted by the external controller, the refresh address control circuit 40 is allowed to proceed with a row hammer refresh event if one is called for based on internal timing and programming. If the RHR_Token signal is not asserted by the external controller, the refresh address control circuit 40 execute refresh commands as they are received from the external controller.

FIG. 2 is a schematic illustration of an example, refresh address control circuit 200 in accordance with the present disclosure. The refresh address control circuit 200 of FIG. 2 may implement the address control circuit 40 of FIG. 1. As shown in FIG. 2, the refresh address counter 200 may include a “CAS before RAS” (CBR) circuit 204 that is generally configured to count through a series of memory addresses responsive to a refresh command received from an external controller. A refresh command received by the memory 10 typically includes an address within the memory cell array 11 (FIG. 1) that corresponds to the beginning of the address block to be refreshed. The CBR circuit 204 provides an incremental sequence of refresh addresses beginning with the first address provided by the externally generated refresh command. As indicated in FIG. 2, the CBR circuit 204 provides a CBR signal as output.

The refresh address counter 200 may additionally include a row hammer refresh (RHR) counter 208 that is generally configured to “steal” a refresh command received from the external controller and replace that refresh command with a row hammer refresh command. The RHR counter 208 may reference the current state of the CBR circuit 204 in determining the timing for stealing the refresh command. Thus, the RHR counter 208 may receive as input the CBR signal, which is output from the CBR circuit 204. The RHR_Token signal may be provided as input to RHR counter 208 so as to enable its command stealing functionality. As mentioned, the refresh address control circuit 200 may be enabled to steal a refresh command when the refresh address control circuit 200 is in possession of a refresh token provided by an external controller. More specifically, the refresh address control circuit 200 may be enabled to steal a refresh command when the RHR_Token signal received by the refresh address control circuit 200 is asserted by the, external controller. When the RHR counter 208 determines based on its inputs that a row hammer refresh event should occur, the RHR counter 208 asserts the RHR_ModeF signal. The RHR_ModeF signal is then provided as output from the RHR counter 208.

The refresh address counter 200 may additionally include a refresh address output circuit 212. The refresh address output circuit 212 may be configured to receive the CBR signal and the RHR_ModeF signal as input. When not in row hammer refresh mode, the address output circuit 212 passes through the memory address provided by the CBR signal. When in row hammer refresh mode, the address output circuit 212 provides a row hammer address according to its own internal calculations. Embodiments in accordance with the present disclosure may determine that a particular word line is hammered via various mechanisms. In one example, probabilistic methods may be used to track hammer addresses. In other examples, disturb counters or similar mechanisms may be used to track hammer addresses. More generally, any currently existing or later developed methods for determined a hammered word line may be used.

FIG. 3 is a schematic illustration of an CBR circuit 300 in accordance with the present disclosure. The CBR circuit 300 of FIG. 3 may be used to implement the CBR circuit 204 of FIG. 2. The CBR circuit 300 may include a chain 302 of flip-flops 304 a-f coupled together via plurality of inverters 308 a-f that function as feedback elements. By way of example and not limitation, the CBR circuit 300 includes six L flip-flops 304 a-f and six feedback inverters 308 a-f. Each flip-flop 304 a-f provides one bit in a memory address used to refresh a block of memory addresses. The first flip flop 304 a is coupled at its input to a NAND gate 312 that provides the initial input to the flip-flop chain 302. The output of the NAND gate 312 is directly coupled to the CLK input of the first flip flop 304 a and coupled to the CLKf input of the first flip flop 304 a through an inverter 316. Inputs to the NAND gate 312 may include a first bit signal 320 and a RHR_ModeF signal 324. As shown in greater detail in FIG. 2, the RHR_ModeF signal 324 may be provided as output from the RHR counter 208.

The first flip flop 304 a is coupled to the second flip flop 304 b such that the Q output of the first flip flop 304 a is coupled to the CLKf input of the second flip flop 304 b. The Q output of the first flip flop 304 a is also coupled to the CLK input of the second flip flop 304 b through the first inventor 308 a. The first inverter 308 a also provides a feedback path such that the Q output of the first flip flop 304 a is coupled through the first inverter 308 to the input of the first flip flop 304 a, Additional adjacent flip flops that are further downstream in the flip flop chain 302 are coupled together in a manner similar to the coupling between the first flip flop 304 a and the second flip flop 304 b. For example, the Q output of the second flip flop 304 b is coupled directly to CLKf input of the third flip flop 304 c and through the second inverter 308 b to the CLK input of the third flip flop 304 c and the l input of the second flip flop 304 b, and so on.

The flip flop chain 302 additionally includes R and S lines that connect to the R and S inputs of the various flip flops 304 a-f in the flip flop chain 302. The R and S lines may be asserted to set and/or reset the flip flops on start up or otherwise as appropriate.

The CBR circuit 300 may be generally configured to count through a series of internal memory addresses responsive to a refresh command received from the external controller. The Q output of each of the flip flops 304 a-f provides one bit of an internal memory address. The CBR signal provided by the CBR circuit 300 may represent the internal memory addresses. The first bit signal 320 that provides input to the NAND gate 312 may toggle between a logical one state and a logical zero state. This toggling between one and zero may lead to a subsequent toggle of the flip flops 304 a-f in the flip flop chain 302 through the configuration described above such that a counter function is implemented. For example, when the initial bit line 320 toggles from one to zero, the first flop 304 a toggles from zero to one. When the first flip flop 304 a toggles from one to zero, the second flip flop 304 b toggles from zero to one. Through these transitions, the flip flop chain 302 counts through a series of binary values as follows: “000000”, “100000”, “010000”, “110000” “111111”, As previously discussed, the binary values may represent memory addresses.

The CBR circuit 300 may supply internal memory addresses for refresh commands. In one embodiment, the CBR circuit 300 is configured such that the first and second bits of the flip flop chain 302 correspond to the A<13:12> signals of the internal address bus. Through the operation of the CBR circuit 300, the A<13:12> signals cycle through four different states 00, 10, 01, and 11 within a single command. In this way, a single refresh command is sub divided into 4 internal events with different most significant bit (MSB) addresses. During a row hammer refresh event, the RHR_ModeF signal 324 may be asserted, for example, by the RHR counter 204 shown in FIG. 2. As mentioned, RHR_ModeF signal 324 may be provided as input to the NAND gate 312 that provides the initial input to the flip-flop chain 302. When RHR_ModeF is asserted, the NAND gate 312 outputs a logical zero regardless of the state of the first bit signal 320, which provides the other input to the NAND gate 312. In this state, the NAND gate 312 is effectively disabled from passing the first bit signal to the flip-flop chain 302. Thus, when the RHR_ModeF signal is asserted, the CBR circuit 300 is stalled.

FIG. 4 is a schematic illustration of an RHR counter 400 in accordance with the present disclosure. The RHR counter 400 may be the RHR counter 208 shown in FIG. 2. The RHR counter 400 may include a multiplexer 404 that receives as input at least a portion of the CBR signal output from the CBR circuit 208. Typically, the multiplexer 404 receives the least significant bits of the CBR signal as input. A programmable selector signal tmfzRHR may be additionally provided as input to multiplexer 404. The multiplexer 404 is generally configured to select a particular bit of the CBR signal to be used to trigger a refresh command steal. More specifically, input from the programmable selector signal tmfzRHR selects a particular bit from the CBR signal. The selected CBR signal bit is then passed through to the output of the multiplexer 404. As output from the multiplexer 404, the selected CBR signal bit is then used to initiate a steal cycle for the next memory refresh.

The programmable selector signal tmfrRHR selects a particular rate at which refresh commands are stolen for a row hammer refresh operation. For example, the programmable selector signal tmfzRHR signal selecting the second most LSB of the CBR signal results in a row hammer refresh operation occurring after 4 sequential refreshes, the programmable selector signal tmfzRHR signal selecting the third most LSB of the CBR signal results in a row hammer refresh operation occurring after 8 sequential refreshes, and so on. In this way, the multiplexer 404 provides a 1:N steal rate counting, where N=5,9,17, and so on,

The RHR counter may further include a timeout circuit 408. The timeout circuit 408 may receive a CBRCNT signal as input. The CBRCNT signal may be provided from the refresh address output circuit 212 or other components. The CBRCNT signal may be used to specify a row hammer refresh cycle time. The timeout circuit 408 may additionally receive as input the RHR_ModeF signal, which signal is fed back from the output of the RHR counter 208. The timeout circuit 408 is generally configured to provide an output signal HammerCountStopF that triggers a row hammer refresh timeout. The timeout circuit 408 begins a count cycle when the RHR_ModeF signal is asserted indicating the beginning of row hammer refresh operation. The timeout circuit 408 then counts down from the value indicated by the CBRCNT signal. When the timeout circuit 408 counts down to zero, the timeout circuit 408 asserts that HammerCountStopF signal so to indicate an end of the row hammer refresh operation.

The latch 412 is generally configured to provide a handoff between sequential refresh operations and row hammer refresh operations. The latch 412 includes a first NAND gate 416 that is coupled to the multiplexer 404 and a second NAND gate 420 that is coupled to the timeout circuit 408. The latch 412 provides an output, which is labelled in FIG. 4 as HammerCountEn. The latch 412 asserts the HammerCountEn signal when the multiplexer 404 indicates the beginning of a row hammer refresh operation. The HammerCountEn signal remains asserted as the row hammer refresh operation executes. When the timeout circuit 408 asserts the HammerCountStopF signal indicating the end of a row hammer refresh operation, the latch 412 toggles so as to de-assert the HammerCountEn signal.

The RHR counter 400 may additionally include a flip flop 424 coupled to the output of the latch 412. The flip flop 424 may be configured to latch and hold the value of the HarnmerCountEn on a refresh command basis. The flip flop 424 may be a D type flip flop in one embodiment. The flip flop 424 may be clocked by an AREF signal that indicates a refresh command. The output of the flip flop 424 is provided to the output of the RHR counter 404 through an XOR gate 428. The XOR gate 428 is configured to also receive the RHR_Token signal as an input. When the RHR_Token signal is asserted, the XOR gate passes the HammerCountEn signal to the output of the RHR counter 400.

The number of rows refreshed in a row hammer refresh operation may be specified by the CBRCNT signal shown in FIG. 4. Row hammer refresh operations typically refresh fewer rows than sequential refresh commands. For example, in a 32 millisecond refresh, a typical sequential refresh command refreshes 256 word lines WL per refresh command. In contrast, a typical row hammer refresh event only refreshes 18-32 word lines WL. Because row hammer refresh operations refresh fewer word lines WL, row hammer refresh operations typically consume less power. Continuing with the 32 millisecond refresh example, refreshing 16 hammered word lines instead of the 256 rows that would be refreshed in a sequential refresh command results in an approximately 75% reduction in power consumption.

The memory device may be organized into groups of memories such that only one group at a time executes a row hammer refresh operation. For example, each group of memories may be assigned a different delay. Once a particular memory reaches the time for a row hammer refresh operation, the memory may wait its assigned delay amount before stealing a refresh command slot for a row hammer refresh operation. Thus, the various memories may steal refresh command slots at the same rate, but execute the operation at different time due to the various delays.

FIG. 5A is a schematic illustration of a memory device 500 in accordance with the present disclosure that uses a token bus configuration to control scheduling of row hammer events across the various memories 504 a-536 d of the memory device 500. The memory device 500 includes a controller 538 coupled to a plurality of memory devices 504 a-536 d through an example token bus 540. The controller 538 may include a N-bit shift register 544 that is configured to provide output to the token bus 540. The memory 10 of FIG. 1 may be used to implement the various memories 504 a-536 d associated with the memory device 500. The number of memories 504 a-536 d that are coupled to a controller 538 through the token bus 540 may depend on the implementation. The example token bus 540 of FIG. 5A couples the controller 538 to thirty-two memories 504 a-536 d by way of example and not limitation.

As shown in FIG. 5A, the example thirty-two memories 504 a-536 d are organized into groups of four memories. This grouping is shown by way of example and not limitation. The number of memories included within a group of memories may vary depending on the implementation. The token bus 540 of FIG. 5A includes nine token signals RHR_Token_0 through RHR_Token_8. Each token signal is associated with a particular group of memories. For example, the first token signal RHR_Token_0 is associated with the first group 548 a of four memories 504 a-d, the second token signal RHR_Token_1 is associated with the second group 548 b of four memories 508 a-d, and so on. In operation, the controller 538 asserts one token signal at a time. When a particular token signal is asserted, the particular memory group coupled to the asserted token line has possession of the token controlled by the token bus 540. When a particular group of memories has possession of the token controlled by the token bus 540, the various memories in the group of memories may proceed with a row hammer refresh operation.

FIG. 5B is a schematic illustration of another memory device 501 in accordance with the present disclosure that uses a token bus configuration to control scheduling of row hammer events across the various memories of the memory device. In FIG. 5A, a token for each group 548 a-548 i is provided by the controller 538. In contrast, in the embodiment of FIG. 5B, a token is self-generated in each of the groups 548 a-548 i in a non-overlapping manner. In the configuration of FIG. 5B, the controller 538 is not required to manage the token. Additionally, a plurality of buses for different tokens is not used. For example, a group 546 a may be programmed (by a fuse in one embodiment) to be the first group to perform a row hammer refresh; a group 548 b may be programmed to be the second group to perform a row hammer refresh; a group 548 c may be programmed to be the third group to perform a row hammer refresh; and so on. In this way, the memory groups 548 a-548 i perform row hammer refreshes in an order that is generally indicated by the arrow 552 shown in FIG. 5B. Each may memory group 548 a-548 i may perform a row hammer refresh once per refresh interval. In one embodiment, the refresh interval may be defined by the AREF cycle. This aspect of the present disclosure is discussed in more detail with in connection with FIG. 8.

FIG. 6 is a schematic illustration of an example an N-bit shift register 600 in accordance with the present disclosure. The N-bit shift register 600 of FIG. 6 may be used to implement the N-bit shift register 544 of FIG. 5. The N-bit shift register 600 may be generally configured to hold the RHR refresh token and to provide the token as output to the token bus 540 shown in FIG. 5. The N-bit shift register 600 includes a plurality of shift register cells 604(0)-604(n) arranged in a series configuration, where “n” is a non-zero, positive number. The N-bit shift register 600 includes a first shift register cell 604(0) having an output coupled to the input of a second shift register cell 604(1). The output of the second shift register cell 604(1) is coupled to the input of a third shift register cell 604(2) (not shown in FIG. 6). Additional shift register cells are coupled together in this manner such that the various cells form a chain beginning with the first shift register cell 604(0) and ending with the Nth shift register cell 604(n). The chain of cells may be circular such that the output of the Nth shift register cell 604(n) is coupled to the input of the first shift register cell 604(0).

Each shift register cell 604(0)_604(n) of the N-bit shift register 600 may include a CLK input. The N-bit shift register 600 may be configured to advance the RHR refresh token from one shift register cell to another on a particular edge of a clock signal. A shift register cell may be clocked with the AREF signal shown in FIG. 1. Through clocking by the AREF signal, the token moves from one memory to another memory responsive to a refresh command as shown in FIG. 8.) For example, if on a particular AREF edge the RHR refresh token is held by the first shift register cell 604(0), the AREF edge may cause the RHR refresh token to pass to the second shift register cell 604(1). The RHR refresh token may be advanced on the rising edge or the falling edge of AREF signal depending on the implementation. Each shift register cell 604(0)-604(n) may additionally be provided with input from a tmfzlDD5 signal that is generally configured to set an initial position or the RHR refresh token along the N-bit shift register 600.

FIG. 7 is a schematic illustration of an example shift register cell 700. The example shift register cell 700 of FIG. 7 may be used to implement the various, shift, register cells 604(0)-604(n) shown in FIG. 6. The example shift register cell 700 of FIG. 7 may include a D type flip flop 704 that functions as the storage element for the cell 700. The D input of the flip flop 704 may function as the input of the shift register cell 700. Similarly, the output may function as the output of the shift register cell 700. The shift register cell 700 may include a CLK input that functions as described in connection with FIG. 6. As additionally shown in FIG. 6B, a shift register cell 700 may be provided with an inverse clock signal that is coupled to a CLKf input of the flip flop 704. As also shown in FIG. 7, the tmfzIDD5 signal may be provided to the S input of the flip flop 704 through a series of logic gates that includes NAND gate 708 and OR gate 712. The shift register cell 700 may additionally include a RESET signal that is provided to the R input of the flip flop 704. The RESET signal may be asserted to reset the flip flop 704 when needed such as on power-up.

FIG. 8 is a timing diagram 800 that illustrates the timing of various row hammer refresh events across an example memory device in accordance with the present disclosure. The timing diagram 800 references the memory device 500 shown in FIG. 5 by way of example and not limitation. As mentioned, the memory device 500 includes thirty-two memories 504 a-536 d organized into memory groups 548 a-i that have four memories to a group. Each memory 504 a-536 d includes an RHR counter 400 that asserts an RHR_ModeF signal when the memory is stealing a refresh command so as to execute a row hammer refresh operation rather than a sequential memory refresh operation. FIG. 8 includes certain ones of these RHR_ModeF signals so as to illustrate the distribution of row hammer refresh events across the memory device 500. More specifically, FIG. 8 includes one RHR_ModeF signal per group 548 a-i of four memories,

Through a token provided over a token bus 540, the controller 500 may be configured to enable one memory group 548 a-i at a time to steal a refresh command for a row hammer refresh operation. In order to simply the diagram 800, one RHR_ModeF signal per memory groups 548 a-i is shown in FIG. 8. For example, FIG. 8 includes a first row hammer mode signal RHR_ModeF_1 corresponding to the RHR_ModeF signal of memory 504 a. Memory 504 a is a member of memory group 548 a, which additionally includes memories 504 b-c. Because memories 504 b-c have RHR_modeF signals that are asserted as the same time as memory 504 a, the RHR_modeF signals for memories 504 b-c are omitted form FIG. 8 in order to simply the drawing.

FIG. 8 additionally includes signal traces for the additional memory groups 548 b-i, A second row hammer mode signal RHR_ModeF_2 corresponds to the RHR_ModeF signal of memory 508 a in memory group 548 b. A third row hammer mode signal RHR_ModeL_3 corresponds to the RHR_ModeF signal of memory 512 a in memory group 548 c. A fourth row hammer mode signal RHR_ModeF_4 corresponds to the RHR_ModeF signal of memory 516 a in memory group 548 d. A fifth row hammer mode signal RHR_ModeF_5 corresponds to the RHR_ModeF signal of memory 520 a in memory group 548 e. A sixth row hammer mode signal RHR_ModeF_6 corresponds to the RHR_ModeF signal of memory 524 a in memory group 548 f. A seventh row hammer mode signal RHR_ModeF_7 corresponds to the RHR_ModeF signal of memory 528 a in memory group 548 g. An eighth row hammer mode signal RHR_ModeF_8 corresponds to the RHR_ModeF signal of memory 532 a in memory group 548 h. A ninth row hammer mode signal RHR_ModeF_9 corresponds to the RHR_ModeF signal of memory 536 a in memory group 548 i.

FIG. 8 additionally includes signal traces for certain signals that may be issued by the controller 500 and received by the various memories 504 a-536 d of the memory device 500. Certain of the signals may be shown in greater detail in FIG. 1. FIG. 8 includes an ACT signal asserted by the controller 500 to indicate an active signal. FIG. 8 also includes a Rfsh signal asserted by the controller 500 on the COM signals to indicate a refresh command. FIG. 8 also includes a AREF signal that corresponds to a refresh command executing on the memory device 500.

In operation, the controller 538 issues a series of refresh commands to the various memories 504 a-536 d. In FIG. 8, these refresh commands correspond to the asserted portions of the AREF signal. When a particular memory receives a refresh command, the memory will determine if the refresh command should be executed as a sequential refresh operation or if the refresh command should be stolen so as to execute a row hammer refresh command. Whether or not a refresh command is stolen will depend on both the calculated timing for a row hammer refresh operation and possession of the refresh token. Generally, a memory will determine, at a particular point during a predetermined refresh cycle, that a row hammer refresh operation is scheduled to occur. In addition, once the memory determines that a row hammer refresh is scheduled to occur, the memory will hold off from executing the row hammer refresh operation until the memory possesses the token issued by the controller 500.

The additional step of holding off from executing the row hammer refresh event until the token is received may be used to cause the various memories 504 a-536 d to execute row hammer refresh operations at different times. The aspect of the present disclosure is illustrated in FIG. 8. In FIG. 8, a 1:9 steal rate is illustrated by way of example and not limitation. The particular steal used may depend on the implementation. For example, other steal rates such as 1:5 and 1:17 may be used. Each memory 504 a-536 d may calculate the time for a row hammer refresh operation as occurring at time T1. However, it may be the case that only memories 504 a-d in memory group 548 a have possession of the token at time T1. Thus, as shown in FIG. 8, memory 504 a asserts its RHR_ModeF signal at T1, while memories 508 a-536 a do not.

As the token is passed between the memories 504 a-536 d, each memory enabled to steal a refresh command for a row hammer refresh operation. Thus, as shown in FIG. 8, memory 508 a asserts its RHR_ModeF signal at time T2, while memories 504 a and 512 a-536 a do not. Memory 512 a asserts its RHR_ModeF signal at time T3, while memories 504 a-508 a and 516 a-536 a do not. Memory 516 a asserts its RHR_ModeF signal at time T4, while memories 504 a-512 a and 520 a-536 a do not. Memory 520 a asserts its RHR_ModeF signal at time T5, while memories 504 a-516 a and 524 a-536 a do not. Memory 524 a asserts its RHR_ModeF signal at time T6, while memories 504 a-520 a and 528 a-536 a do not. Memory 528 a asserts its RHR_ModeF signal at time T7, while memories 504 a-524 a and 532 a-536 a do not. Memory 532 a asserts its RHR_ModeF signal at time T8, while memories 504 a-526 a and 536 a do not. Memory 536 a asserts its RHR_ModeF signal at time T9, while memories 504 a-532 a do not.

By distributing row hammer refresh events across the memory device 500 as shown in FIG. 8, peak power consumption may be reduced. This reduction in peak power consumption may be due to the smaller power consumption that occurs in a row hammer refresh operation. For example, in 32 ms refresh, 256 (×8) rows are fired per command, in a row hammer refresh event, only 16-32 rows need to be fired. Referring to FIG. 8, at time T1, fewer rows are refreshed by memory 504 a than are refreshed by memories 508 a-536 a. At time T2, fewer rows are refreshed by memory 508 a than are refreshed by memories 504 a and 512 a-536 a, and so on. As shown in FIG. 8, the memory device 500 may be programmed such that at least one memory is executing the lower power row hammer refresh operation during the time allotted for given refresh command. Power consumption is thereby reduced for each refresh command. Thus, overall peak power may be reduced.

Embodiments of the present disclosure allow each memory associated with a memory device to program which refresh in a given refresh cycle fires a row hammer refresh event. As described above, various refresh cycles times may be defined such as every 5^(th) refresh command, every 9^(th) refresh command, every 17^(th) refresh command. By programming a memory device such that row hammer refresh events are distributed across the memory device, the peak idd5 current at a memory device level can be reduced by almost 1/(steal rate). For example, refreshing 16 row hammer refresh rows instead of 256 rows may result in a 75% IDD reduction. On a DIMM, including up to 36 DRAM devices, embodiments in accordance with the present disclosure can reduce peak idd5 demand by evenly distributing the steals across different commands. For example, steal 1:9 and 36 chips could have 4 chips stealing every refresh command instead of 36 chips stealing every 9^(th) refresh command. Accordingly, in some embodiments, peak, power reduction of approximately 8.6% may be obtained.

The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention as defined in the claims. Although various embodiments of the claimed invention have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of the claimed invention. Other embodiments are therefore contemplated. It is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative only of particular embodiments and not limiting. Changes in detail or structure may be made without departing from the basic elements of the invention as defined in the following claims.

The foregoing description has broad application. The discussion of any embodiment is meant only to be explanatory and is not intended to suggest that the scope of the disclosure, including the claims, is limited to these examples. In other words, while illustrative embodiments of the disclosure have been described in detail herein, the inventive concepts may be otherwise variously embodied and employed, and the appended claims are intended to be construed to include such variations, except as limited by the prior art. 

1. An apparatus, comprising: a first memory configured to receive a sequential series of refresh commands and to replace a first of the sequential refresh commands with a row hammer refresh operation; a second memory configured to receive the sequential series of refresh commands and to replace a second of the sequential refresh command with a row hammer refresh operation; wherein the first of the sequential refresh commands and the second of the sequential refresh commands are different commands.
 2. The apparatus of claim 1, wherein: the first memory is further configured to execute a sequential refresh operation responsive to the second of the sequential refresh command; and the second memory is further configured to execute a sequential refresh operation responsive to the first of the sequential refresh command.
 3. The apparatus of claim 2, wherein: the row hammer refresh operation executed by the first memory refreshes fewer memory cells than the sequential refresh operation executed by the first memory; and the row hammer refresh operation executed by the second memory refreshes fewer memory cells than the sequential refresh operation executed by the second memory.
 4. The apparatus of claim 1, wherein: the first memory is a member of a first group of memories, wherein each memory of the first group of memories is configured to replace the first of the sequential refresh commands with a row hammer refresh operation; and the second memory is a member of a second group of memories, wherein each memory of the second group of memories is configured to replace the second of the sequential refresh commands with a row hammer refresh operation.
 5. The apparatus of claim 1, further comprising: a controller coupled to both the first and second memory devices and configured to, issue the sequential series of refresh commands to the first and second memory devices; wherein the first memory device is enabled to replace the first of the sequential refresh commands with a row hammer refresh operation when the first memory device possess a token and the second memory device does not possess the token; and the second memory device is enabled to replace the second of the sequential refresh commands with a row hammer refresh operation when the, second memory device possess the token and the first memory device does not possess the token.
 6. The apparatus of claim, wherein the controller is further configured to pass the token between at least the first and second memory devices and comprises an N-bit shift register coupled to a token bus that provides the token to at least the first and second memory devices
 7. The apparatus of claim 5, wherein the first memory device comprises. an address counter circuit configured to output a series of internal memory addresses responsive to a refresh command received from the controller; a row hammer refresh counter coupled to the address counter and configured to receive the token, the row hammer refresh counter further configured to stall the address counter on a row hammer refresh event; wherein the row hammer refresh counter stalls the address counter only when the row hammer refresh circuit possesses the token.
 8. The apparatus of claim 7, wherein the row hammer refresh counter receives at least a portion of the internal memory addresses as input, the row hammer refresh counter configured to the trigger row hammer refresh operation based on the at least a portion of the internal memory addresses.
 9. An apparatus comprising: a plurality of groups, each of which includes at least one memory device a controller configured to provide a token to one of the plurality of groups, wherein the token is provided to less than all of the plurality of groups, and wherein each memory device is configured to receive a sequence of refresh commands and replace one of the sequence of refresh commands with a row hammer refresh operation when the token is received from the controller.
 10. The apparatus of claim 9, wherein the controller comprises a N-bit shift register configured to provide a plurality of token signals each associated with one of the plurality of groups, wherein the N-bit shift register is configured to provide one of the plurality of token signals at a time.
 11. The apparatus of claim 9, wherein each memory device is configured to perform a CAS before RAS (CBR) refresh operation responsive to the sequence of refresh commands when not receiving the token.
 12. The apparatus of claim 9, wherein the CBR refresh operation refreshes more memory cells than the row hammer refresh operation.
 13. The apparatus of claim 9, wherein the controller is configured to provide sequence of refresh commands to the memory devices of the plurality of groups.
 14. The apparatus of claim 9, wherein each memory device includes a refresh address control circuit comprising: an address counter configured to provide a sequence of internal memory addresses based on the sequence of refresh commands; and a row hammer refresh counter circuit configured to stall the address counter while receiving the token from the controller.
 15. The apparatus of claim 14, wherein responsive to receiving the token, the refresh address control circuit is configured to provide a row hammer address.
 16. The apparatus of claim 14, wherein the row hammer refresh counter circuit is configured to determine a timing of the row hammer refresh operation based on a state of the address counter.
 17. A method comprising: receiving a sequence of refresh commands at a first memory device and second, memory device; replacing a first of the sequence of refresh commands with a row hammer refresh operation in the first memory device; replacing a second of the sequence of refresh commands with a row hammer refresh operation in the second memory device, wherein the first, and the second of the sequence of refresh commands are different ones of the sequence of refresh commands.
 18. The method of claim 17, further comprising determining the first and the second of the sequence of refresh commands based, in part, on a time when a token is possessed by the first memory device and second memory device respectively, wherein the time the token is possessed by the fist memory is non-overlapping with a time the token is possessed by the second memory.
 19. The method of claim 18, wherein the first memory device and the second memory device are configured to generate the token.
 20. The method of claim 18, wherein the first memory device and the second memory device are configured to receive the token from a controller, The method of claim 17, further comprising: performing a CAS before RAS (CBR) refresh operation responsive to the second of the sequence of refresh commands with the first memory device; and performing a CBR refresh operation responsive to the first of the sequence of refresh commands with the second memory device. 